//
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.JScrollPane.*;
//
/**Tester f&uuml;r die Balken.
 * 
 * @author Dr. Gerd Wegener
 * @version 0001 Montag 20.12.2010 22:44:01
 * @modified: 0003 Samstag 16.07.2011 14:45:50
 * @author Hung Nguyen Huu <hung852001@yahoo.com>
 * @author Viktor Ayzenshtadt <vsa85@gmx.de>
 */
public class BalkenAnsicht{
   public static int[] getBalkenVal(String [] resultQuery){			// EXTRA angelegt um die Breitengröße in der Klasse Balken.java übergeben zu können
     //    Array mit den Werten aus resultQuery Array erzeugen
	  int index = 0;
	  int[] valuesGesamt = new int[resultQuery.length/24];	// Eine Gesamtzahl pro Datensatz, also /24
	  for(int i = 4; i < resultQuery.length; i++){
		valuesGesamt[index] += Integer.parseInt(resultQuery[i]); index++;	// Integer Casting - speichert die Werten in einem int[]
		i = i+23;			// um einen Datensatz durchlaufen, nur GesamtWerte holen
	  }
	  return valuesGesamt;
   }
//  
   public static int[] getBalkenJahr(String[] resultQuery){
		 //    Array mit den Werten aus resultQuery Array erzeugen
	  int index = 0;
	  int[] valuesJahr = new int[resultQuery.length/24];	// Eine Gesamtzahl pro Datensatz, also /24
	  for(int i = 2; i < resultQuery.length; i++){
		valuesJahr[index] += Integer.parseInt(resultQuery[i]); index++;	// Integer Casting - speichert die Werten in einem int[]
		i = i+23;			// um einen Datensatz durchlaufen, nur GesamtWerte holen
	  }
	  return valuesJahr;
   }
//	
   public static void main(String [] resultQuery, String gebietNr, int jahrVon, int jahrBis, String geschlechtCBVal){
   	  String balkenLabel = "Balkendiagramm: (Gebietsnr.: " + gebietNr + " von " + jahrVon + " bis " + jahrBis + " - Geschlecht: " + geschlechtCBVal + ")"; 
		if(jahrVon == -1 && jahrBis == -1) { // beide Felder sind leer
			balkenLabel = "Balkendiagramm: (Gebietsnr.: " + gebietNr +" aus allen Jahren" + " - Geschlecht: " + geschlechtCBVal + ")"; 
		}
		else if(jahrBis != 0 && jahrBis != -1 && jahrVon != -1 && jahrBis == jahrVon) {   // jahrVon = jahrBis
			balkenLabel = "Balkendiagramm: (Gebietsnr.: " + gebietNr + " aus dem Jahr " + jahrVon + " - Geschlecht: " + geschlechtCBVal + ")"; 
		}
		// jahrVon = leer; jahrBis existiert
		else if(jahrVon == -1 && jahrBis != -1 && jahrBis != 0) balkenLabel = "Balkendiagramm: (Gebietsnr.: " + gebietNr + " bis Jahr " + jahrBis + " - Geschlecht: " + geschlechtCBVal + ")"; 
		// jahrBis = leer; jahrVon existiert
		else if(jahrVon != -1 && jahrVon != 0 && jahrBis == -1) balkenLabel = "Balkendiagramm: (Gebietsnr.: " + gebietNr + " ab Jahr " + jahrVon + " - Geschlecht: " + geschlechtCBVal + ")"; 	
//		
		if(resultQuery[0] == ""){
			JOptionPane.showMessageDialog(null, "Die Datensaetze fuer das angegebene Jahr/ die angegebenen Jahre existiert nicht!", "Fehlermeldung", JOptionPane.ERROR_MESSAGE);
		}
	  JFrame frame = new JFrame(balkenLabel);
	  frame.setBackground(new Color(235,235,235));			// Hintergrundfarbe
//
	  int[] gesamtArray = getBalkenVal(resultQuery);	// Methodenaufruf um die Gesamtwerten der  Datensätze zu holen
	  int[] jahrArray = getBalkenJahr(resultQuery);		// Methodenaufruf um die Jahrwerten der Datensätze zu holen
      Balken balken = new Balken(gesamtArray, jahrArray, geschlechtCBVal);			// Objekt erzeugt
	  // Fenster rendern
	  JScrollPane scrollPane = new JScrollPane(balken);// ScrollPane mit balken 
	  frame.getContentPane().add(scrollPane, BorderLayout.CENTER);
      frame.setBounds(0,450,1320,600);
      frame.setVisible(true);
   }
}
